import { Module } from 'vuex'

interface JobProp{
  jobname: string;
}

const jobs: Module<JobProp, StoreProp> = {
  namespaced: true,
  state: {
    jobname: '程序员'
  },

  /**
   * mutations中无法直接调用其他模块的mutation
   * 可以通过action间接调用（不建议）
   */
  mutations: {
    jobUpate (state) {
      state.jobname = '高级程序员'
    }
  },
  actions: {
    /**
     * 更新测试
     * @param context 全局上下文
     * @param payload 调用此action时的入参
     * @returns 测试
     */
    upadateUserName (context, payload) {
      console.log('this: ', this)
      console.log('context: ', context)
      console.log('payload: ', payload)
      // 访问父模块 getters 无法使用代码提示
      console.log('len: ', context.getters.columnsLen)

      return { test: true }
    }
  }
}

export default jobs
